package com.cy.pj.common.pool;

import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

@Component
@Scope("prototype")//多例模式,数据不会存进springboot容器中,存在bean pool
@Lazy//描述对象类型时表示延迟对象的创建,何时需要何时创建,尤其是一些大对象,短时间又不会用到我们可以采用这样的策略
public class ObjectPool {
    public ObjectPool(){
        System.out.println("ObjectPool");
    }

    @PostConstruct//此注解描述的方法为对象生命周期初始化方法,此方法会
    //在构造方法之后执行
    public void init(){
        System.out.println("ObjectPool.init");
    }

    @PreDestroy//此注解描述的方法为对象生命周期销毁方法,此方法会在对象销毁之前执行
    public void destroy(){
        System.out.println("ObjectPool.destroy");
    }
}
